The present disclosure relates to a storage system and a method for control of a storage system. In particular, the disclosure relates to a method and apparatus for control of data flow within a storage system using a multi-path expander.
Typically, a data storage system that operates in accordance with existing data storage protocol will include plural storage media such as hard disk drives together with a controller arranged to communicate with a host central processing unit (CPU). The controller will be connected to (or will include) one or more expanders which effectively serve as multi-port switches to enable communication of data between the storage media and the host CPU.
Storage connections and protocols are continually evolving over time and thus the speed, capability and capacity of such protocols are similarly evolving. For example, one well known and utilised storage protocol is the Serial Attached SCSI (SAS) connection method and protocol which is common in storage systems. The standard includes specifications for channels and components within a system. Currently, each individual channel between a component within a SAS system is specified as needing to be at six Gigabits per second per lane. The previous revision of this specification, approximately one year ago, required only three Gigabits per second per lane and it is expected, in due course, that the next revision of the specification will require 12 Gigabits per second per lane.
FIG. 1 shows a schematic representation of a storage system. The system 2 includes a host CPU 4 connected to a controller 6, e.g. a SAS controller, which itself is connected to a SAS expander 8. It will of course be appreciated that a SAS expander is merely an expander that conforms to the SAS protocol. Similar storage systems might include corresponding components that operate in accordance with other storage protocols and the present disclosure is not therefore limited only to SAS systems.
Plural storage media 10 are provided which, in this case, might be hard disk drives. It is envisioned that any type of storage medium may be included. For example, in some cases solid state drives are provided as well as or instead of hard disk drives.
As can be seen, there are channels provided between each of the components in the system 2. In particular, there is a single channel between each of the storage media 10 and expander 8. There are plural channels provided between the expander and the controller. Also shown, but not of relevance to the present system is host memory 12.
The controller 6 is connected to the CPU 4 and the expander 8. The expander 8 is connected both to the controller 6 and to each of the storage media 10. In the example shown, there is only a single expander 8 provided. Twelve hard disk drives are provided with a four channel link between the expander and the controller.
In a system such as that of FIG. 1, using maximum data transfer and processing speed available today, the SAS bandwidth at the four channel link between the expander and the controller can provide is 2.4 Gigabits per second (GiBs−1). This gives a maximum bandwidth of 200 Megabits per second (MiBs−1) per disk drive which is sufficient for typical current data requirements. In addition, a typical controller is able to provide 300,000 input/output operations per second (IOPS) which again, split equally between the twelve disk drives gives approximately 50,000 IOPS per drive which is again, sufficient for today's capacities.
As mentioned above, it is envisaged that shortly twelve GiBs−1 technology will be released and soon become industry standard. The same topology would therefore be capable of providing 400 MiBs−1 and 83,000 IOPS per drive. Data rates at this sort of level are impressive and of great interest to the storage industry at large. Some issues arise. For example, a simple SAS topology created in the standard configuration shown in FIG. 1 using low cost parts is capable of providing bandwidth and data rates and IOPS that are far greater than would typically be required within a low end system. Furthermore, within a low cost system, the CPU 4 is likely to be a low cost device. When high numbers of IOPS are demanded of the CPU by the controller 6, significant capacity of a CPU is thus required to service the requests for the IOPS. Indeed, in some cases, the CPU can be utilised at 100% simply performing the IOPS.